package com.zhihao.zhihaopicturebackend.model.dto.picture;

import com.zhihao.zhihaopicturebackend.common.PageRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

//@ApiModel("图片查询请求类-可分页")
@EqualsAndHashCode(callSuper = true)
@Data
public class PictureQueryRequest extends PageRequest implements Serializable {

    /**
     * id
     */
    @ApiModelProperty(value = "图片id")
    private Long id;

    /**
     * 图片名称
     */
    @ApiModelProperty(value = "图片名称")
    private String name;

    /**
     * 简介
     */
    @ApiModelProperty(value = "图片简介")
    private String introduction;

    /**
     * 标签(表中字段为Json格式字符串，此处转化为List)
     */
    @ApiModelProperty(value = "图片标签")
    private List<String> tags;

    /**
     * 分类
     */
    @ApiModelProperty(value = "图片分类")
    private String category;

    /**
     * 文件体积
     */
    @ApiModelProperty(value = "图片大小")
    private Long picSize;

    /**
     * 图片宽度
     */
    @ApiModelProperty(value = "图片宽度")
    private Integer picWidth;

    /**
     * 图片高度
     */
    @ApiModelProperty(value = "图片高度")
    private Integer picHeight;

    /**
     * 图片比例
     */
    @ApiModelProperty(value = "图片比例")
    private Double picScale;

    /**
     * 图片格式
     */
    @ApiModelProperty(value = "图片格式")
    private String picFormat;

    /**
     * 用户 id
     */
    @ApiModelProperty(value = "用户id")
    private Long userId;

    /**
     * 空间 id
     */
    @ApiModelProperty(value = "空间id")
    private Long spaceId;

    /**
     * 是否只查询 spaceId 为 null 的数据
     * 公共图库的图片space_id字段默认为NULL
     * 但是请求中如果不传spaceId参数，则默认sql语句不会将space_id作为条件，即查出来的数据public+private都有，则加下述标识
     * nullSpaceId=true:公共图库，sql根据此布尔值决定是否添加querywrapper.eq()方法
     */
    @ApiModelProperty(value = "public or private")
    private boolean nullSpaceId;

    /**
     * 搜索词（同时搜名称、简介等）
     */
    @ApiModelProperty(value = "搜索关键词")
    private String searchText;

    /**
     * 状态：0-待审核; 1-通过; 2-拒绝
     */
    @ApiModelProperty(value = "审核状态")
    private Integer reviewStatus;

    /**
     * 审核信息
     */
    @ApiModelProperty(value = "审核信息")
    private String reviewMessage;

    /**
     * 审核人 id
     */
    @ApiModelProperty(value = "审核人id")
    private Long reviewerId;

    /**
     * 开始编辑时间（用于查询一段时间内被编辑的图片-- [ge,lt)常用区间 ）
     */
    @ApiModelProperty(value = "开始编辑时间")
    private Date startEditTime;

    /**
     * 结束编辑时间
     */
    @ApiModelProperty(value = "结束编辑时间")
    private Date endEditTime;


//    /**
//     * 审核时间
//     */
//    @ApiModelProperty(value = "审核时间")
//    private Date reviewTime;

    private static final long serialVersionUID = 1L;  
}
